package ebook.thinking.chapter14.pets;

import java.util.HashMap;

public class PetCount
{

    static class PetCounter extends HashMap<String, Integer>
    {
        public void count(String type)
        {
            Integer quantity = get(type);
            if (quantity == null)
            {
                put(type, new Integer(1));
            }
            else
            {
                put(type, get(type) + 1);
            }
        }
    }

    public static void countPets(PetCreator creator)
    {
        PetCounter counter = new PetCounter();
        for (Pet pet : creator.createArray(20))
        {
            System.out.println(pet.getClass().getSimpleName() + " ");
            if (pet instanceof Pet)
                counter.count("Pet");
            if (pet instanceof Dog)
                counter.count("Dog");
            if (pet instanceof Mutt)
                counter.count("Mutt");
            if (pet instanceof Pug)
                counter.count("Pug");
            if (pet instanceof Cat)
                counter.count("Cat");
            if (pet instanceof Manx)
                counter.count("Manx");
            if (pet instanceof Cymric)
                counter.count("Cymric");
            if (pet instanceof Rodent)
                counter.count("Rodent");
            if (pet instanceof Rat)
                counter.count("Rat");
            if (pet instanceof Mouse)
                counter.count("Mouse");
            if (pet instanceof Hamster)
                counter.count("Hamster");
        }
        System.out.println(counter);
    }

    public static void main(String[] args)
    {
        countPets(new ForNameCreator());
    }
}
